#include <stdio.h>
#include <setjmp.h>

// 设置jmp_buf用于保存当前程序状态
jmp_buf env;

void func(int ret)
{
    printf("func ret:%d\n", ret++);
    longjmp(env, ret);
}

int main()
{
    int ret = setjmp(env);
    if (ret == 0)
    {
        func(ret);
    }
    else if (ret == 1)
    {
        func(ret);
    }
    else if (ret == 2)
    {
        func(ret);
    }
    else if (ret == 3)
    {
        func(ret);
    }

    return 0;
}